const {
    bind
} = require("core-js/fn/function");

{
    //在对象方法中，this 指的是此方法的“拥有者”。
    //对象中 this指代的就是这个对象
    var person = {
        firstName: "Tony",
        lastName: "ji",
        fullName: function () {
            return this.firstName + " " + this.lastName;
        }
    };
    console.log(person.fullName())
}


{
    // window 拥有这个方法 所以 this指代的是window
    function myFunction() {
        return this;
    }
}


{
    // call()
    //第一个参数：this指向
    //如果要传参，后面依次是参数
    function fn(x, y) {
        console.log(this);
    }
    var obj = {
        name: "zs"
    }
    fn(1, 2); //window
    fn.call(obj); //obj
}

{
    //  与第一种方法不同的是，用数组的形式表示参数
    function fn(x, y) {
        console.log(this);
    }
    var obj = {
        name: "zs"
    }
    fn(1, 2);
    fn.apply(obj, [1, 2]);
}


for (var i = 0; i < 10; i++) {
    (function (i) {
        console.log(i);
    })(i)
}

{ 
    let x = 9
    { console.log(x)}
}

